Proyecto BlogFeedback

Autor: Urbina González Josué Fabricio

Módulos de python utilizados para la realización del proyecto


In [1]:
import pandas as pd
import glob
from sklearn import linear_model
from sklearn.metrics import r2_score

Lectura de los datos de entrenamiento, en el cual se utiliza la ruta absoluta donde se encuentra el .csv


In [2]:
df = pd.read_csv(
    '/home/urb/PycharmProjects/Machine_Learning/Data/P1/BlogFeedback/blogData_train.csv',
    header=None)
DATA = df.as_matrix()
X = DATA[:, :-1]
Y = DATA[:, -1]

Instancias de los modelos de regresión, utilizando los dos tipos de regularización (LASSO, RIDGE) y elasticNet que es la combinación de los dos. Para poder seleccionar después el mejor modelo dependiendo de los resultados.


In [3]:
model = linear_model.Ridge(alpha=0.01, normalize=True)
model2 = linear_model.Lasso(alpha=0.01, normalize=True)
model3 = linear_model.ElasticNet(alpha=0.01, normalize=True)

Entrenamiento de los modelos utilizando el dataset de training.


In [ ]:
model.fit(X, Y)
model2.fit(X, Y)
model3.fit(X, Y)

Predicción de los datos, utilizando los archivos de testing. Además de la realización de la métrica R cuadrada; la cual nos indica cual es el mejor modelo para cada prueba. El valor más cercano a 1 es el óptimo.


In [ ]:
dir_test = glob.glob(
    '/home/urb/PycharmProjects/Machine_Learning/Data/P1/BlogFeedback/blogData_test*')
for path in dir_test:
    df_test = pd.read_csv(path, header=None)
    DATA_T = df_test.as_matrix()
    X_test = DATA_T[:, :-1]
    Y_test = DATA_T[:, -1]

    y_predict1 = model.predict(X_test)
    y_predict2 = model2.predict(X_test)
    y_predict3 = model3.predict(X_test)

    """
    Medida  R cuadrada,  la más óptima es 1. 
    """
    print("Model 1; metric R square, ", r2_score(Y_test, y_predict1))
    print("Model 2; metric R square, ", r2_score(Y_test, y_predict2))
    print("Model 3; metric R square, ", r2_score(Y_test, y_predict3))
    print("")